/*******************************************************************************
*  file    : dataprovider.hpp
*  created : 14.07.2014
*  author  : Slyshyk Oleksiy (alexSlyshyk@gmail.com)
*******************************************************************************/

#ifndef DATAPROVIDER_HPP
#define DATAPROVIDER_HPP

#include <QObject>
#include <QSharedPointer>

struct NamedData;
struct NamedIntData;
class  DataObject;

typedef QSharedPointer<NamedData>    NamedDataPtr;
typedef QSharedPointer<NamedIntData> NamedIntDataPtr;
typedef QSharedPointer<DataObject>   DataObjectPtr;

class DataProvider : public QObject
{
    Q_OBJECT
public:
    explicit DataProvider(QObject *parent = 0);
    virtual  QString  name() const = 0;
signals:
    void dataReady(int, NamedDataPtr);
    void dataObjectReady(DataObjectPtr);
};

#endif // DATAPROVIDER_HPP
